//原文链接：
//https://blog.csdn.net/ITSOK_123/article/details/124526013
//广度优先（O(N),O(N)）
vector<vector<int>> levelOrder(TreeNode* root) {
        vector<int> res;
        queue<TreeNode*> qt;
        vector<vector<int> > ve;
        // 根节点入队
        if(root != nullptr) qt.push(root);
        while(!qt.empty()){
            // 每一行定义一个暂存本行变量的vector
            vector<int> vec;
            //size保存当前遍历的一行的元素个数
            int _size = qt.size();
            while(_size--){
                TreeNode* node = qt.front();
                qt.pop();
                vec.push_back(node->val);
                // 出队元素的左右子节点入队
                if(node->left != nullptr)   qt.push(node->left);
                if(node->right != nullptr)  qt.push(node->right);
            }
            ve.push_back(vec);
        }
        return ve;
    }
